/**
 * 
 */
package com.lanswon.qzsmk.service.appManageService;

import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.lanswon.qzsmk.exception.ApplicationException;
import com.lanswon.qzsmk.base.DwzPage;
import com.lanswon.qzsmk.model.AppClassification;
import com.lanswon.qzsmk.model.AppOpenReg;
import com.lanswon.qzsmk.vo.AppOpenRegVo;
import com.lanswon.qzsmk.vo.ApplicationTypeVo;
import com.lanswon.qzsmk.vo.VoucherVo;


/**
 * 应用开通
 * @dy
 *
 */
public interface AppOpenRegService
{

	/**
	 * 通过市民卡号查询卡应用表
	 * @param citizenCardNo
	 * @return
	 */
	DwzPage<AppOpenRegVo> queryAppOpenRegByCodeKindname(String citizenCardNo, String Status,AppOpenRegVo sci, String appKindName,
			String remark1, String remark2);
	

	/**
	 * 动态获取app分类类型
	 * @param citizenCardNo
	 * @return
	 */
	List<AppClassification> queryAppClassificationsKindname ();
	/**
	 * 提交应用开通页面
	 * @param appKindName 
	 * @return
	 */
	AppOpenReg CommitAppOpen(String appKindName,String citizenCardNo,String cardsn )throws ApplicationException;


	/**
	 * 提交应用停用页面
	 * @param appKindName 
	 * @return
	 */
	AppOpenReg CommitAppStop(String appKindName,String citizenCardNo,String cardsn )throws ApplicationException;
	
	
	
	/**
	 * 获取到该应用是开通还是停用
	 * @param  
	 * @return
	 */
	public String checkOpenByStop(Date validStartDate,Date validEndDate );

	
	/**
	 * 查询市民卡对应的应用开通信息
	 * @param request
	 * @return
	 */
	Map<String, Object> queryAppOpenReg(HttpServletRequest request);

	/**
	 * 开通应用
	 * @param request
	 * @return
	 * @throws ApplicationException 
	 */
	Map<String, Object> openAppRegister(HttpServletRequest request) throws ApplicationException;

	/**
	 * 通过卡号查询卡信息
	 * @param request
	 * @return
	 */
	Map<String, Object> queryCardInfo(HttpServletRequest request);

	/**
	 * 开通自行车应用
	 * @param request
	 * @param vipno
	 * @param vipcardsn
	 * @param cardsn
	 * @return
	 * @throws ApplicationException 
	 */
	Map<String, Object> executeOpenAppReg(HttpServletRequest request, String vipno, String vipcardsn, String cardsn) throws ApplicationException;

	/**
	 * 开通公交应用
	 * @param request
	 * @return
	 */
	Map<String, Object> executeOpenBusAppReg(HttpServletRequest request);

	/**
	 * 关闭自行车应用
	 * @param request
	 * @return
	 * @throws ApplicationException 
	 */
	Map<String, Object> executeCloseBikeAppReg(HttpServletRequest request) throws ApplicationException;

	/**
	 * 关闭公交应用
	 * @param request
	 * @return
	 */
	Map<String, Object> executeCloseBusAppReg(HttpServletRequest request);

	/**
	 * 通过市民卡查询密钥信息
	 * @param request
	 * @return
	 */
	Map<String, Object> queryBikeAppPwdInfoByCitizenNo(HttpServletRequest request);

	/**
	 * 开通图书馆应用
	 * @param request
	 * @return
	 */
	Map<String, Object> executeOpenLibAppReg(HttpServletRequest request);

	/**
	 * 关闭图书馆应用
	 * @param request
	 * @return
	 */
	Map<String, Object> executeCloseLibAppReg(HttpServletRequest request);

}
